using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;

namespace Web.App.Infrastructure.UnitOfWork.Contracts
{
    public interface IUoWSession: IDisposable
    {
        void Save<T>(T entity);
        void SaveOrUpdate<T>(T entity);
        void Delete<T>(T entity);
        void Refresh<T>(T entity);
        IQueryable<T> Query<T>(Expression<Func<T, bool>> predicate);
        T LoadById<T>(object id);
        void Reconnect();
        void Disconnect();
        
      
    }
}